package cn.edu.scau.cmi.liqiquan.singleton;

import javafx.geometry.Insets;
import javafx.scene.Node;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TextArea;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;

public class ControlPane extends BorderPane {
	private TextArea ta = new TextArea();
	private HBox hb = new HBox();
	private Button btnMao = new Button("毛泽东");
	private Button btnCap = new Button("现任主席");
	private MaoZeDong mao = null;
	private Caption cap = null;
	
	public ControlPane() {
		initInterface();
		setEventListener();
	}
	
	/**
	 * 界面搭建
	 */
	private void initInterface() {
		hb.setPadding(new Insets(15,12,15,12));
		hb.setSpacing(15);
		hb.getChildren().addAll(btnCap, btnMao);
		
		ta.setEditable(false);
		
		this.setTop(hb);
		this.setCenter(ta);
	}
	
	/**
	 * 事件订阅
	 */
	private void setEventListener() {
		this.btnMao.setOnAction(e->{
			//创建一个毛泽东实例
			if(this.mao == null) {
				this.mao = MaoZeDong.getMaoZeDong();//新建实例
				ta.appendText(mao.getName()+ "  实例--被创建！\n");
				
			}else {
				//创建一个新实例，然后与第一个对比
				if(SingletonCompare.isSingleton(mao, MaoZeDong.getMaoZeDong())) {
					ta.appendText(mao.getName()+ "  实例--已存在!\n");
				}else {
					ta.appendText(mao.getName()+ "  实例--被创建!\n");
				}
			}
		});
		
		this.btnCap.setOnAction(e->{
			//创建一个现任主席实例
			if(this.cap == null) {
				this.cap = new Caption("现任主席");//新建实例
				ta.appendText(cap.getName()+ "  实例--被创建！\n");
			}else {
				//创建一个新实例，然后与第一个对比
				if(SingletonCompare.isSingleton(cap, new Caption("现任主席"))) {
					ta.appendText(cap.getName()+ "  实例--被创建！\n");
				}else {
					ta.appendText(cap.getName()+ "  实例--被创建！\n");
				}
			}
		});
	}
}

